# nonlocal: 用来声明外部的局部变量的，只能在嵌套函数中使用，在外部函数先进行声明，在内部函数进行nonlocal声明
# 使用nonlocal声明时，他会对上一层进行修改！
a = 10 # 全局变量

def outer():
    a = 5

    def inner():
        # nonlocal a
        a = 20
        print('inner函数中的a的值：', a)
        def inner2():
            nonlocal a
            a = 30
            print('inner2函数中的a的值：', a)
        inner2()
    # 调用函数
    inner()
    print('outer函数中a的值：', a)

# 调用函数
outer()
